package com.jingtao.controller;

import com.jingtao.pojo.ItemCat;
import com.jingtao.service.ItemCatService;
import com.jingtao.vo.SysResult;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@CrossOrigin
@RequestMapping("/itemCat")
public class ItemCatController {

    @Resource
    private ItemCatService itemCatService;

    /**
     * 需求：查询商品分类信息
     * 参数：/{level} 1一级  2一二级  3一二三级
     * URL:/itemCat/findItemCatList/{level}
     * 返回值：SysResult（3级商品分类信息）
     * @return
     */
    @GetMapping("/findItemCatList/{level}")
    public SysResult findItemCatList(@PathVariable Integer level){
        List<ItemCat> itemCatList = itemCatService.findItemCatList(level);
        return SysResult.sucess(itemCatList);
    }

    /**
     * 业务需求：实现商品新增
     * 请求路径: /itemCat/saveItemCat
     * 请求类型: post
     * 请求参数:表单数据
     */

    @PostMapping("/saveItemCat")
    public SysResult saveItemCat(@RequestBody ItemCat itemCat){
        itemCatService.saveItemCat(itemCat);
        return SysResult.sucess();
    }

    /**
     * 完成商品分类的删除
     * 请求路径: /itemCat/deleteItemCat
     * 请求类型: delete
     * 业务描述: 当删除节点为父级时,应该删除自身和所有的子节点
     */
    @DeleteMapping("/deleteItemCat")
    public SysResult deleteItemCat(Integer id, Integer level){
        itemCatService.deleteItemCat(id,level);
        return SysResult.sucess();
    }

    /**
     * 请求路径: /itemCat/updateItemCat
     * 请求类型: put
     * 请求参数: 表单数据 ItemCat对象
     * 返回值: SysResult对象
     */
    @PutMapping("/updateItemCat")
    public SysResult updateItemCat(@RequestBody ItemCat itemCat){
        itemCatService.updateItemCat(itemCat);
        return SysResult.sucess();
    }

    /**
     * 实现商品分类状态修改
     * 请求路径: /itemCat/status/{id}/{status}
     * 请求类型: put
     * 请求参数:
     */
    @PutMapping("/status/{id}/{status}")
    public SysResult status(ItemCat itemCat){
        itemCatService.status(itemCat);
        return SysResult.sucess();
    }
}
